<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arduino A2DP: BluetoothA2DPSource Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Arduino A2DP
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_bluetooth_a2_d_p_source-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">BluetoothA2DPSource Class Reference<div class="ingroups"><a class="el" href="group__a2dp.html">ESP32 A2DP</a></div></div></div>
</div><!--header-->
<div class="contents">

<p>A2DP Bluetooth Source.  
 <a href="class_bluetooth_a2_d_p_source.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_bluetooth_a2_d_p_source_8h_source.html">BluetoothA2DPSource.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for BluetoothA2DPSource:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_bluetooth_a2_d_p_source.png" usemap="#BluetoothA2DPSource_map" alt=""/>
  <map id="BluetoothA2DPSource_map" name="BluetoothA2DPSource_map">
<area href="class_bluetooth_a2_d_p_common.html" title="Common Bluetooth A2DP functions." alt="BluetoothA2DPCommon" shape="rect" coords="0,0,145,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a545a8b10ab474d787744f85fe784d49a"><td class="memItemLeft" align="right" valign="top"><a id="a545a8b10ab474d787744f85fe784d49a" name="a545a8b10ab474d787744f85fe784d49a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>BluetoothA2DPSource</b> ()</td></tr>
<tr class="memdesc:a545a8b10ab474d787744f85fe784d49a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a545a8b10ab474d787744f85fe784d49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a417e7ef0049364c22c92a29e6c4b4ed1"><td class="memItemLeft" align="right" valign="top"><a id="a417e7ef0049364c22c92a29e6c4b4ed1" name="a417e7ef0049364c22c92a29e6c4b4ed1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~BluetoothA2DPSource</b> ()</td></tr>
<tr class="memdesc:a417e7ef0049364c22c92a29e6c4b4ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a417e7ef0049364c22c92a29e6c4b4ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a959ff7f30a6064f018dcdad5deb8e3d9"><td class="memItemLeft" align="right" valign="top"><a id="a959ff7f30a6064f018dcdad5deb8e3d9" name="a959ff7f30a6064f018dcdad5deb8e3d9"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_ssp_enabled</b> (bool active)</td></tr>
<tr class="memdesc:a959ff7f30a6064f018dcdad5deb8e3d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">activate Secure Simple Pairing <br /></td></tr>
<tr class="separator:a959ff7f30a6064f018dcdad5deb8e3d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65ac6f2b0777c97874ee358119de3790"><td class="memItemLeft" align="right" valign="top"><a id="a65ac6f2b0777c97874ee358119de3790" name="a65ac6f2b0777c97874ee358119de3790"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_auto_reconnect</b> (bool active)</td></tr>
<tr class="memdesc:a65ac6f2b0777c97874ee358119de3790"><td class="mdescLeft">&#160;</td><td class="mdescRight">activate / deactivate the automatic reconnection to the last address (per default this is on) <br /></td></tr>
<tr class="separator:a65ac6f2b0777c97874ee358119de3790"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab94a0596fd595994f3ae4d2d6d2e5a5b"><td class="memItemLeft" align="right" valign="top"><a id="ab94a0596fd595994f3ae4d2d6d2e5a5b" name="ab94a0596fd595994f3ae4d2d6d2e5a5b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_auto_reconnect</b> (esp_bd_addr_t addr)</td></tr>
<tr class="memdesc:ab94a0596fd595994f3ae4d2d6d2e5a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">automatically tries to reconnect to the indicated address <br /></td></tr>
<tr class="separator:ab94a0596fd595994f3ae4d2d6d2e5a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb9c5182525261c53b803719b3027014"><td class="memItemLeft" align="right" valign="top"><a id="acb9c5182525261c53b803719b3027014" name="acb9c5182525261c53b803719b3027014"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_local_name</b> (const char *name)</td></tr>
<tr class="memdesc:acb9c5182525261c53b803719b3027014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the local name. <br /></td></tr>
<tr class="separator:acb9c5182525261c53b803719b3027014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a403b0e21db02c81b948534258e5ff37b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_source.html#a403b0e21db02c81b948534258e5ff37b">start</a> (const char *name, music_data_channels_cb_t callback=NULL)</td></tr>
<tr class="memdesc:a403b0e21db02c81b948534258e5ff37b"><td class="mdescLeft">&#160;</td><td class="mdescRight">starts the bluetooth source  <br /></td></tr>
<tr class="separator:a403b0e21db02c81b948534258e5ff37b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9605c01de93792d11295125de0a24087"><td class="memItemLeft" align="right" valign="top"><a id="a9605c01de93792d11295125de0a24087" name="a9605c01de93792d11295125de0a24087"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>start</b> (music_data_channels_cb_t callback=NULL)</td></tr>
<tr class="memdesc:a9605c01de93792d11295125de0a24087"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts w/o indicating the name. Connections will be managed via <a class="el" href="class_bluetooth_a2_d_p_source.html#abeee46614099e67972aa63447321ca44" title="Define callback to be notified about the found ssids.">set_ssid_callback()</a> <br /></td></tr>
<tr class="separator:a9605c01de93792d11295125de0a24087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a304a8c42fc04bbbabe6923a6f736f5bb"><td class="memItemLeft" align="right" valign="top"><a id="a304a8c42fc04bbbabe6923a6f736f5bb" name="a304a8c42fc04bbbabe6923a6f736f5bb"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>start</b> (std::vector&lt; const char * &gt; names, music_data_channels_cb_t callback=NULL)</td></tr>
<tr class="memdesc:a304a8c42fc04bbbabe6923a6f736f5bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">starts the bluetooth source. Supports multiple alternative names <br /></td></tr>
<tr class="separator:a304a8c42fc04bbbabe6923a6f736f5bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed760968d1114bf993325302deef0fb1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_source.html#aed760968d1114bf993325302deef0fb1">start_raw</a> (const char *name, music_data_cb_t callback=NULL)</td></tr>
<tr class="memdesc:aed760968d1114bf993325302deef0fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">starts the bluetooth source  <br /></td></tr>
<tr class="separator:aed760968d1114bf993325302deef0fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adec130ac9f0a83f5c121ab1e5d2cafba"><td class="memItemLeft" align="right" valign="top"><a id="adec130ac9f0a83f5c121ab1e5d2cafba" name="adec130ac9f0a83f5c121ab1e5d2cafba"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>start_raw</b> (music_data_cb_t callback=NULL)</td></tr>
<tr class="memdesc:adec130ac9f0a83f5c121ab1e5d2cafba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts w/o indicating the name. Connections will be managed via <a class="el" href="class_bluetooth_a2_d_p_source.html#abeee46614099e67972aa63447321ca44" title="Define callback to be notified about the found ssids.">set_ssid_callback()</a> <br /></td></tr>
<tr class="separator:adec130ac9f0a83f5c121ab1e5d2cafba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeffc499b79590d9742f026c800a6e0b5"><td class="memItemLeft" align="right" valign="top"><a id="aeffc499b79590d9742f026c800a6e0b5" name="aeffc499b79590d9742f026c800a6e0b5"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>start_raw</b> (std::vector&lt; const char * &gt; names, music_data_cb_t callback=NULL)</td></tr>
<tr class="memdesc:aeffc499b79590d9742f026c800a6e0b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">start_raw which supports multiple alternative names <br /></td></tr>
<tr class="separator:aeffc499b79590d9742f026c800a6e0b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a615fbfaeb4cad862209fa4b3c2c8286c"><td class="memItemLeft" align="right" valign="top"><a id="a615fbfaeb4cad862209fa4b3c2c8286c" name="a615fbfaeb4cad862209fa4b3c2c8286c"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_pin_code</b> (const char *pin_code, esp_bt_pin_type_t pin_type=ESP_BT_PIN_TYPE_VARIABLE)</td></tr>
<tr class="memdesc:a615fbfaeb4cad862209fa4b3c2c8286c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the pin code. If nothing is defined we use "1234". <br /></td></tr>
<tr class="separator:a615fbfaeb4cad862209fa4b3c2c8286c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a5976c3d81ae96e5e3be06fd6a662da"><td class="memItemLeft" align="right" valign="top"><a id="a0a5976c3d81ae96e5e3be06fd6a662da" name="a0a5976c3d81ae96e5e3be06fd6a662da"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>write_data</b> (<a class="el" href="class_sound_data.html">SoundData</a> *data)</td></tr>
<tr class="memdesc:a0a5976c3d81ae96e5e3be06fd6a662da"><td class="mdescLeft">&#160;</td><td class="mdescRight">write sound data: In some cases it is very difficult to use the callback function. As an alternative we provide this method where you can just send the data to a queue. It is your responsibility however that you handle the situation if the queue is full. <br /></td></tr>
<tr class="separator:a0a5976c3d81ae96e5e3be06fd6a662da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cdf418188e9d1d003c6524f2e1e640c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_source.html#a5cdf418188e9d1d003c6524f2e1e640c">is_connected</a> ()</td></tr>
<tr class="memdesc:a5cdf418188e9d1d003c6524f2e1e640c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the bluetooth device is connected.  <br /></td></tr>
<tr class="separator:a5cdf418188e9d1d003c6524f2e1e640c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb93cd1d697bb1e9dfaf263f3d05c900"><td class="memItemLeft" align="right" valign="top"><a id="adb93cd1d697bb1e9dfaf263f3d05c900" name="adb93cd1d697bb1e9dfaf263f3d05c900"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>has_sound_data</b> ()</td></tr>
<tr class="memdesc:adb93cd1d697bb1e9dfaf263f3d05c900"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if write_dataRaw has been called with any valid data. <br /></td></tr>
<tr class="separator:adb93cd1d697bb1e9dfaf263f3d05c900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3825c8750538c5b25ba0082c30ec7ae"><td class="memItemLeft" align="right" valign="top"><a id="ac3825c8750538c5b25ba0082c30ec7ae" name="ac3825c8750538c5b25ba0082c30ec7ae"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_nvs_init</b> (bool doInit)</td></tr>
<tr class="memdesc:ac3825c8750538c5b25ba0082c30ec7ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines if the Flash NVS should be reset on start. <br /></td></tr>
<tr class="separator:ac3825c8750538c5b25ba0082c30ec7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5efcc4c32c6ec8ce7eac2c1acb59f27c"><td class="memItemLeft" align="right" valign="top"><a id="a5efcc4c32c6ec8ce7eac2c1acb59f27c" name="a5efcc4c32c6ec8ce7eac2c1acb59f27c"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_reset_ble</b> (bool doInit)</td></tr>
<tr class="memdesc:a5efcc4c32c6ec8ce7eac2c1acb59f27c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines if the BLE should be reset on start. <br /></td></tr>
<tr class="separator:a5efcc4c32c6ec8ce7eac2c1acb59f27c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab199a1240a5850a43738f3872805c9ba"><td class="memItemLeft" align="right" valign="top"><a id="ab199a1240a5850a43738f3872805c9ba" name="ab199a1240a5850a43738f3872805c9ba"></a>
virtual int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>get_data_default</b> (uint8_t *data, int32_t len)</td></tr>
<tr class="memdesc:ab199a1240a5850a43738f3872805c9ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">callback for data <br /></td></tr>
<tr class="separator:ab199a1240a5850a43738f3872805c9ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeee46614099e67972aa63447321ca44"><td class="memItemLeft" align="right" valign="top"><a id="abeee46614099e67972aa63447321ca44" name="abeee46614099e67972aa63447321ca44"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_ssid_callback</b> (bool(*callback)(const char *ssid, esp_bd_addr_t address, int rrsi))</td></tr>
<tr class="memdesc:abeee46614099e67972aa63447321ca44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define callback to be notified about the found ssids. <br /></td></tr>
<tr class="separator:abeee46614099e67972aa63447321ca44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab63e627832d6377be32dd700130bf0d8"><td class="memItemLeft" align="right" valign="top"><a id="ab63e627832d6377be32dd700130bf0d8" name="ab63e627832d6377be32dd700130bf0d8"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>disconnect</b> ()</td></tr>
<tr class="memdesc:ab63e627832d6377be32dd700130bf0d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the connection. <br /></td></tr>
<tr class="separator:ab63e627832d6377be32dd700130bf0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac795a023f85438355a1b00644f2b040f"><td class="memItemLeft" align="right" valign="top"><a id="ac795a023f85438355a1b00644f2b040f" name="ac795a023f85438355a1b00644f2b040f"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>reconnect</b> ()</td></tr>
<tr class="memdesc:ac795a023f85438355a1b00644f2b040f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reconnects to the last device. <br /></td></tr>
<tr class="separator:ac795a023f85438355a1b00644f2b040f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a788d81fe538021f912d737de72ed6be6"><td class="memItemLeft" align="right" valign="top"><a id="a788d81fe538021f912d737de72ed6be6" name="a788d81fe538021f912d737de72ed6be6"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>connect_to</b> (esp_bd_addr_t peer)</td></tr>
<tr class="memdesc:a788d81fe538021f912d737de72ed6be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connnects to the indicated address. <br /></td></tr>
<tr class="separator:a788d81fe538021f912d737de72ed6be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a8a860a325348cdf210637e8d1159e6"><td class="memItemLeft" align="right" valign="top"><a id="a0a8a860a325348cdf210637e8d1159e6" name="a0a8a860a325348cdf210637e8d1159e6"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_connected</b> (bool active)</td></tr>
<tr class="memdesc:a0a8a860a325348cdf210637e8d1159e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls disconnect or reconnect. <br /></td></tr>
<tr class="separator:a0a8a860a325348cdf210637e8d1159e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76e329bf0587ebf41792871acc69188b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a76e329bf0587ebf41792871acc69188b">end</a> (bool releaseMemory=false)</td></tr>
<tr class="memdesc:a76e329bf0587ebf41792871acc69188b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the connection and stops A2DP.  <br /></td></tr>
<tr class="separator:a76e329bf0587ebf41792871acc69188b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bab92d9317837ecaeacbfe26814e28c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a0bab92d9317837ecaeacbfe26814e28c">set_volume</a> (uint8_t volume)</td></tr>
<tr class="memdesc:a0bab92d9317837ecaeacbfe26814e28c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the volume (range 0 - 255)  <br /></td></tr>
<tr class="separator:a0bab92d9317837ecaeacbfe26814e28c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e570c2c2f9db40873286e0571f0d93a"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a0e570c2c2f9db40873286e0571f0d93a">get_volume</a> ()</td></tr>
<tr class="memdesc:a0e570c2c2f9db40873286e0571f0d93a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the actual volume.  <br /></td></tr>
<tr class="separator:a0e570c2c2f9db40873286e0571f0d93a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7757ddbf424aeb909dc952d7c40fc241"><td class="memItemLeft" align="right" valign="top"><a id="a7757ddbf424aeb909dc952d7c40fc241" name="a7757ddbf424aeb909dc952d7c40fc241"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_volume_control</b> (<a class="el" href="class_a2_d_p_volume_control.html">A2DPVolumeControl</a> *ptr)</td></tr>
<tr class="memdesc:a7757ddbf424aeb909dc952d7c40fc241"><td class="mdescLeft">&#160;</td><td class="mdescRight">you can define a custom VolumeControl implementation <br /></td></tr>
<tr class="separator:a7757ddbf424aeb909dc952d7c40fc241"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74eadbd69b5c7adf1b190c7e41b75b10"><td class="memItemLeft" align="right" valign="top"><a id="a74eadbd69b5c7adf1b190c7e41b75b10" name="a74eadbd69b5c7adf1b190c7e41b75b10"></a>
virtual esp_a2d_audio_state_t&#160;</td><td class="memItemRight" valign="bottom"><b>get_audio_state</b> ()</td></tr>
<tr class="memdesc:a74eadbd69b5c7adf1b190c7e41b75b10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the actual audio state. <br /></td></tr>
<tr class="separator:a74eadbd69b5c7adf1b190c7e41b75b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a513b32676d8fc248bb481180f832ef97"><td class="memItemLeft" align="right" valign="top"><a id="a513b32676d8fc248bb481180f832ef97" name="a513b32676d8fc248bb481180f832ef97"></a>
virtual esp_a2d_connection_state_t&#160;</td><td class="memItemRight" valign="bottom"><b>get_connection_state</b> ()</td></tr>
<tr class="memdesc:a513b32676d8fc248bb481180f832ef97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the connection state. <br /></td></tr>
<tr class="separator:a513b32676d8fc248bb481180f832ef97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79cff78c075c9273ea2b5c03f052fcd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#aa79cff78c075c9273ea2b5c03f052fcd">set_on_connection_state_changed</a> (void(*callBack)(esp_a2d_connection_state_t state, void *), void *obj=nullptr)</td></tr>
<tr class="memdesc:aa79cff78c075c9273ea2b5c03f052fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback that is called when the connection state is changed.  <br /></td></tr>
<tr class="separator:aa79cff78c075c9273ea2b5c03f052fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a169e9b94cbbfb7311a8722cc6d436e95"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a169e9b94cbbfb7311a8722cc6d436e95">set_on_audio_state_changed_post</a> (void(*callBack)(esp_a2d_audio_state_t state, void *), void *obj=nullptr)</td></tr>
<tr class="separator:a169e9b94cbbfb7311a8722cc6d436e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f13ecf541393c21a5a489235bad27fb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a5f13ecf541393c21a5a489235bad27fb">set_on_audio_state_changed</a> (void(*callBack)(esp_a2d_audio_state_t state, void *), void *obj=nullptr)</td></tr>
<tr class="memdesc:a5f13ecf541393c21a5a489235bad27fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback that is called when the audio state is changed.  <br /></td></tr>
<tr class="separator:a5f13ecf541393c21a5a489235bad27fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6601d3c57e37f77bfdd03a3ef6231e2"><td class="memItemLeft" align="right" valign="top"><a id="aa6601d3c57e37f77bfdd03a3ef6231e2" name="aa6601d3c57e37f77bfdd03a3ef6231e2"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>debounce</b> (void(*cb)(void), int ms)</td></tr>
<tr class="memdesc:aa6601d3c57e37f77bfdd03a3ef6231e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevents that the same method is executed multiple times within the indicated time limit. <br /></td></tr>
<tr class="separator:aa6601d3c57e37f77bfdd03a3ef6231e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a791432e5c800e75fb11b858071cff651"><td class="memItemLeft" align="right" valign="top"><a id="a791432e5c800e75fb11b858071cff651" name="a791432e5c800e75fb11b858071cff651"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>log_free_heap</b> ()</td></tr>
<tr class="memdesc:a791432e5c800e75fb11b858071cff651"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs the free heap. <br /></td></tr>
<tr class="separator:a791432e5c800e75fb11b858071cff651"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b78346084e12feeea035d006e7cf07a"><td class="memItemLeft" align="right" valign="top"><a id="a2b78346084e12feeea035d006e7cf07a" name="a2b78346084e12feeea035d006e7cf07a"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>to_str</b> (esp_a2d_connection_state_t state)</td></tr>
<tr class="memdesc:a2b78346084e12feeea035d006e7cf07a"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts esp_a2d_connection_state_t to a string <br /></td></tr>
<tr class="separator:a2b78346084e12feeea035d006e7cf07a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38d70707790dec91d63da2006f2ff17a"><td class="memItemLeft" align="right" valign="top"><a id="a38d70707790dec91d63da2006f2ff17a" name="a38d70707790dec91d63da2006f2ff17a"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>to_str</b> (esp_a2d_audio_state_t state)</td></tr>
<tr class="memdesc:a38d70707790dec91d63da2006f2ff17a"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts a esp_a2d_audio_state_t to a string <br /></td></tr>
<tr class="separator:a38d70707790dec91d63da2006f2ff17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa76a15aa8922301e72a745b540b040c"><td class="memItemLeft" align="right" valign="top"><a id="afa76a15aa8922301e72a745b540b040c" name="afa76a15aa8922301e72a745b540b040c"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>to_str</b> (esp_bd_addr_t bda)</td></tr>
<tr class="memdesc:afa76a15aa8922301e72a745b540b040c"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts a esp_bd_addr_t to a string - the string is 18 characters long! <br /></td></tr>
<tr class="separator:afa76a15aa8922301e72a745b540b040c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7896335b8f2cc324da86e16efb1544c9"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a7896335b8f2cc324da86e16efb1544c9">to_str</a> (esp_avrc_playback_stat_t state)</td></tr>
<tr class="memdesc:a7896335b8f2cc324da86e16efb1544c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">converts esp_avrc_playback_stat_t to a string  <br /></td></tr>
<tr class="separator:a7896335b8f2cc324da86e16efb1544c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f9e168839f0faeb72705ccabbb6b7a"><td class="memItemLeft" align="right" valign="top"><a id="a68f9e168839f0faeb72705ccabbb6b7a" name="a68f9e168839f0faeb72705ccabbb6b7a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_task_priority</b> (UBaseType_t priority)</td></tr>
<tr class="memdesc:a68f9e168839f0faeb72705ccabbb6b7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">defines the task priority (the default value is configMAX_PRIORITIES - 10) <br /></td></tr>
<tr class="separator:a68f9e168839f0faeb72705ccabbb6b7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a694940fad2a2d498875cfbdf52eea58b"><td class="memItemLeft" align="right" valign="top"><a id="a694940fad2a2d498875cfbdf52eea58b" name="a694940fad2a2d498875cfbdf52eea58b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_task_core</b> (BaseType_t core)</td></tr>
<tr class="memdesc:a694940fad2a2d498875cfbdf52eea58b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the core which is used to start the tasks (to process the events and audio queue) <br /></td></tr>
<tr class="separator:a694940fad2a2d498875cfbdf52eea58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e96c34428c50873a0ca7423a6b5402"><td class="memItemLeft" align="right" valign="top"><a id="ae5e96c34428c50873a0ca7423a6b5402" name="ae5e96c34428c50873a0ca7423a6b5402"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_event_queue_size</b> (int size)</td></tr>
<tr class="memdesc:ae5e96c34428c50873a0ca7423a6b5402"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the queue size of the event task. <br /></td></tr>
<tr class="separator:ae5e96c34428c50873a0ca7423a6b5402"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04bc52a4279a503203084492fe20c32e"><td class="memItemLeft" align="right" valign="top"><a id="a04bc52a4279a503203084492fe20c32e" name="a04bc52a4279a503203084492fe20c32e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_event_stack_size</b> (int size)</td></tr>
<tr class="memdesc:a04bc52a4279a503203084492fe20c32e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the stack size of the event task (in bytes) <br /></td></tr>
<tr class="separator:a04bc52a4279a503203084492fe20c32e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf924bb9f5e348c85e65879c337a4bde"><td class="memItemLeft" align="right" valign="top"><a id="acf924bb9f5e348c85e65879c337a4bde" name="acf924bb9f5e348c85e65879c337a4bde"></a>
virtual esp_bd_addr_t *&#160;</td><td class="memItemRight" valign="bottom"><b>get_last_peer_address</b> ()</td></tr>
<tr class="memdesc:acf924bb9f5e348c85e65879c337a4bde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the address of the last device. <br /></td></tr>
<tr class="separator:acf924bb9f5e348c85e65879c337a4bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e53adc58f665113c9ac6a5521e58814"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_common.html#a8e53adc58f665113c9ac6a5521e58814">set_discoverability</a> (esp_bt_discovery_mode_t d)</td></tr>
<tr class="memdesc:a8e53adc58f665113c9ac6a5521e58814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bluetooth discoverability.  <br /></td></tr>
<tr class="separator:a8e53adc58f665113c9ac6a5521e58814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b37f48a6b0bca33fb21b2a9ae9dab7c"><td class="memItemLeft" align="right" valign="top"><a id="a8b37f48a6b0bca33fb21b2a9ae9dab7c" name="a8b37f48a6b0bca33fb21b2a9ae9dab7c"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_connectable</b> (bool connectable)</td></tr>
<tr class="memdesc:a8b37f48a6b0bca33fb21b2a9ae9dab7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bluetooth connectable. <br /></td></tr>
<tr class="separator:a8b37f48a6b0bca33fb21b2a9ae9dab7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a458bca4d65937c5e2de7bfeb0f454d88"><td class="memItemLeft" align="right" valign="top"><a id="a458bca4d65937c5e2de7bfeb0f454d88" name="a458bca4d65937c5e2de7bfeb0f454d88"></a>
virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_name</b> ()</td></tr>
<tr class="memdesc:a458bca4d65937c5e2de7bfeb0f454d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the actual SSID name. <br /></td></tr>
<tr class="separator:a458bca4d65937c5e2de7bfeb0f454d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962cc9aef396b06c7eb6f56462a743ac"><td class="memItemLeft" align="right" valign="top"><a id="a962cc9aef396b06c7eb6f56462a743ac" name="a962cc9aef396b06c7eb6f56462a743ac"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>clean_last_connection</b> ()</td></tr>
<tr class="memdesc:a962cc9aef396b06c7eb6f56462a743ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">clean last connection (delete) <br /></td></tr>
<tr class="separator:a962cc9aef396b06c7eb6f56462a743ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a3d189b51d912e0f7711d9d68cc9a2b82"><td class="memItemLeft" align="right" valign="top"><a id="a3d189b51d912e0f7711d9d68cc9a2b82" name="a3d189b51d912e0f7711d9d68cc9a2b82"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>process_user_state_callbacks</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a3d189b51d912e0f7711d9d68cc9a2b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5bf1de3b7b4238749ac79b0f18db2dd"><td class="memItemLeft" align="right" valign="top"><a id="ae5bf1de3b7b4238749ac79b0f18db2dd" name="ae5bf1de3b7b4238749ac79b0f18db2dd"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_work_dispatch</b> (bt_app_cb_t p_cback, uint16_t event, void *p_params, int param_len, bt_app_copy_cb_t p_copy_cback)</td></tr>
<tr class="separator:ae5bf1de3b7b4238749ac79b0f18db2dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add852eb08c900cb6e173b8966823a18e"><td class="memItemLeft" align="right" valign="top"><a id="add852eb08c900cb6e173b8966823a18e" name="add852eb08c900cb6e173b8966823a18e"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_task_start_up</b> (void)</td></tr>
<tr class="separator:add852eb08c900cb6e173b8966823a18e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa25477c0cb1fd732b9060e08c714b4b5"><td class="memItemLeft" align="right" valign="top"><a id="aa25477c0cb1fd732b9060e08c714b4b5" name="aa25477c0cb1fd732b9060e08c714b4b5"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_task_shut_down</b> (void)</td></tr>
<tr class="separator:aa25477c0cb1fd732b9060e08c714b4b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95068a630e4b6347b38af539da78adde"><td class="memItemLeft" align="right" valign="top"><a id="a95068a630e4b6347b38af539da78adde" name="a95068a630e4b6347b38af539da78adde"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_av_media_proc</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a95068a630e4b6347b38af539da78adde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51e6a058f546bb1ddf47b837ee57905d"><td class="memItemLeft" align="right" valign="top"><a id="a51e6a058f546bb1ddf47b837ee57905d" name="a51e6a058f546bb1ddf47b837ee57905d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_av_state_unconnected</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a51e6a058f546bb1ddf47b837ee57905d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a717ccd89ec384b650fbd2772c9b6d1a2"><td class="memItemLeft" align="right" valign="top"><a id="a717ccd89ec384b650fbd2772c9b6d1a2" name="a717ccd89ec384b650fbd2772c9b6d1a2"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_av_state_connecting</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a717ccd89ec384b650fbd2772c9b6d1a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e271af83db21a59a34211c9d595dbcb"><td class="memItemLeft" align="right" valign="top"><a id="a1e271af83db21a59a34211c9d595dbcb" name="a1e271af83db21a59a34211c9d595dbcb"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_av_state_connected</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a1e271af83db21a59a34211c9d595dbcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c79179b16a8776c9cf69842f67d9eec"><td class="memItemLeft" align="right" valign="top"><a id="a6c79179b16a8776c9cf69842f67d9eec" name="a6c79179b16a8776c9cf69842f67d9eec"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_av_state_disconnecting</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a6c79179b16a8776c9cf69842f67d9eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ef79b395dfa25b60e1ebe3a905f397"><td class="memItemLeft" align="right" valign="top"><a id="a72ef79b395dfa25b60e1ebe3a905f397" name="a72ef79b395dfa25b60e1ebe3a905f397"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_send_msg</b> (<a class="el" href="structapp__msg__t.html">app_msg_t</a> *msg)</td></tr>
<tr class="separator:a72ef79b395dfa25b60e1ebe3a905f397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f457a79794e09c1aea9e920ab3fcd43"><td class="memItemLeft" align="right" valign="top"><a id="a8f457a79794e09c1aea9e920ab3fcd43" name="a8f457a79794e09c1aea9e920ab3fcd43"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_work_dispatched</b> (<a class="el" href="structapp__msg__t.html">app_msg_t</a> *msg)</td></tr>
<tr class="separator:a8f457a79794e09c1aea9e920ab3fcd43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a166ad62ed68cf5d827d9670f5d70f026"><td class="memItemLeft" align="right" valign="top"><a id="a166ad62ed68cf5d827d9670f5d70f026" name="a166ad62ed68cf5d827d9670f5d70f026"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>get_name_from_eir</b> (uint8_t *eir, uint8_t *bdname, uint8_t *bdname_len)</td></tr>
<tr class="separator:a166ad62ed68cf5d827d9670f5d70f026"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf9c78e8b30f3c3faa74001bf102cef3"><td class="memItemLeft" align="right" valign="top"><a id="adf9c78e8b30f3c3faa74001bf102cef3" name="adf9c78e8b30f3c3faa74001bf102cef3"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>filter_inquiry_scan_result</b> (esp_bt_gap_cb_param_t *param)</td></tr>
<tr class="separator:adf9c78e8b30f3c3faa74001bf102cef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b692c9a823d9631db112bf59b3fe17e"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_source.html#a8b692c9a823d9631db112bf59b3fe17e">last_bda_nvs_name</a> ()</td></tr>
<tr class="separator:a8b692c9a823d9631db112bf59b3fe17e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71d1b1f7d91b04383d0c578a80544fbb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_source.html#a71d1b1f7d91b04383d0c578a80544fbb">bt_av_hdl_stack_evt</a> (uint16_t event, void *p_param)</td></tr>
<tr class="separator:a71d1b1f7d91b04383d0c578a80544fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35c430f6189445c239fa2db742351956"><td class="memItemLeft" align="right" valign="top"><a id="a35c430f6189445c239fa2db742351956" name="a35c430f6189445c239fa2db742351956"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_task_handler</b> (void *arg)</td></tr>
<tr class="separator:a35c430f6189445c239fa2db742351956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0af11f0ae07a78192946734a71b066c8"><td class="memItemLeft" align="right" valign="top"><a id="a0af11f0ae07a78192946734a71b066c8" name="a0af11f0ae07a78192946734a71b066c8"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_gap_callback</b> (esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param)</td></tr>
<tr class="separator:a0af11f0ae07a78192946734a71b066c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fd7b02f3a3f7595453eb981137b3e54"><td class="memItemLeft" align="right" valign="top"><a id="a7fd7b02f3a3f7595453eb981137b3e54" name="a7fd7b02f3a3f7595453eb981137b3e54"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_rc_ct_cb</b> (esp_avrc_ct_cb_event_t event, esp_avrc_ct_cb_param_t *param)</td></tr>
<tr class="memdesc:a7fd7b02f3a3f7595453eb981137b3e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">callback function for AVRCP controller <br /></td></tr>
<tr class="separator:a7fd7b02f3a3f7595453eb981137b3e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a036c89c702ec1a5a3fa10f8017ff91cc"><td class="memItemLeft" align="right" valign="top"><a id="a036c89c702ec1a5a3fa10f8017ff91cc" name="a036c89c702ec1a5a3fa10f8017ff91cc"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>a2d_app_heart_beat</b> (void *arg)</td></tr>
<tr class="separator:a036c89c702ec1a5a3fa10f8017ff91cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae7a0b4f0f75242ceadf6e76a5863b6f"><td class="memItemLeft" align="right" valign="top"><a id="aae7a0b4f0f75242ceadf6e76a5863b6f" name="aae7a0b4f0f75242ceadf6e76a5863b6f"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_a2d_cb</b> (esp_a2d_cb_event_t event, esp_a2d_cb_param_t *param)</td></tr>
<tr class="memdesc:aae7a0b4f0f75242ceadf6e76a5863b6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">callback function for A2DP source <br /></td></tr>
<tr class="separator:aae7a0b4f0f75242ceadf6e76a5863b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3bb1aaddd9dcbd9da6a37c5aded8727"><td class="memItemLeft" align="right" valign="top"><a id="ad3bb1aaddd9dcbd9da6a37c5aded8727" name="ad3bb1aaddd9dcbd9da6a37c5aded8727"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_app_av_sm_hdlr</b> (uint16_t event, void *param)</td></tr>
<tr class="memdesc:ad3bb1aaddd9dcbd9da6a37c5aded8727"><td class="mdescLeft">&#160;</td><td class="mdescRight">A2DP application state machine. <br /></td></tr>
<tr class="separator:ad3bb1aaddd9dcbd9da6a37c5aded8727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9f14078c1d5dd00c93049fa8b2e283e"><td class="memItemLeft" align="right" valign="top"><a id="ae9f14078c1d5dd00c93049fa8b2e283e" name="ae9f14078c1d5dd00c93049fa8b2e283e"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_av_hdl_avrc_ct_evt</b> (uint16_t event, void *p_param)</td></tr>
<tr class="memdesc:ae9f14078c1d5dd00c93049fa8b2e283e"><td class="mdescLeft">&#160;</td><td class="mdescRight">avrc CT event handler <br /></td></tr>
<tr class="separator:ae9f14078c1d5dd00c93049fa8b2e283e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a190c59464f53e2d4c3f121afbb7a3c21"><td class="memItemLeft" align="right" valign="top"><a id="a190c59464f53e2d4c3f121afbb7a3c21" name="a190c59464f53e2d4c3f121afbb7a3c21"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>reset_last_connection</b> ()</td></tr>
<tr class="memdesc:a190c59464f53e2d4c3f121afbb7a3c21"><td class="mdescLeft">&#160;</td><td class="mdescRight">resets the last connectioin so that we can reconnect <br /></td></tr>
<tr class="separator:a190c59464f53e2d4c3f121afbb7a3c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2626298e32edfc399ddb0bf5efc32fc7"><td class="memItemLeft" align="right" valign="top">virtual esp_err_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bluetooth_a2_d_p_source.html#a2626298e32edfc399ddb0bf5efc32fc7">esp_a2d_connect</a> (esp_bd_addr_t peer)</td></tr>
<tr class="separator:a2626298e32edfc399ddb0bf5efc32fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a389f69aa8791470ae23800f6e4b6ff3f"><td class="memItemLeft" align="right" valign="top"><a id="a389f69aa8791470ae23800f6e4b6ff3f" name="a389f69aa8791470ae23800f6e4b6ff3f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_av_notify_evt_handler</b> (uint8_t event, esp_avrc_rn_param_t *param)</td></tr>
<tr class="separator:a389f69aa8791470ae23800f6e4b6ff3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9545946bc03882355f5d15b0611e40e8"><td class="memItemLeft" align="right" valign="top"><a id="a9545946bc03882355f5d15b0611e40e8" name="a9545946bc03882355f5d15b0611e40e8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>bt_av_volume_changed</b> (void)</td></tr>
<tr class="separator:a9545946bc03882355f5d15b0611e40e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3771c6d300c7709f2b76ab8847574cf4"><td class="memItemLeft" align="right" valign="top"><a id="a3771c6d300c7709f2b76ab8847574cf4" name="a3771c6d300c7709f2b76ab8847574cf4"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>get_last_connection</b> ()</td></tr>
<tr class="separator:a3771c6d300c7709f2b76ab8847574cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3a2ee313a97da4e788ba3489847115c"><td class="memItemLeft" align="right" valign="top"><a id="af3a2ee313a97da4e788ba3489847115c" name="af3a2ee313a97da4e788ba3489847115c"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_last_connection</b> (esp_bd_addr_t bda)</td></tr>
<tr class="separator:af3a2ee313a97da4e788ba3489847115c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f98f07ba4cf5962a7cdda50317b3112"><td class="memItemLeft" align="right" valign="top"><a id="a4f98f07ba4cf5962a7cdda50317b3112" name="a4f98f07ba4cf5962a7cdda50317b3112"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>has_last_connection</b> ()</td></tr>
<tr class="separator:a4f98f07ba4cf5962a7cdda50317b3112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1e2f14ddbe9266b61f5e721095c3685"><td class="memItemLeft" align="right" valign="top"><a id="af1e2f14ddbe9266b61f5e721095c3685" name="af1e2f14ddbe9266b61f5e721095c3685"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set_scan_mode_connectable</b> (bool connectable)</td></tr>
<tr class="memdesc:af1e2f14ddbe9266b61f5e721095c3685"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines if the bluetooth is connectable. <br /></td></tr>
<tr class="separator:af1e2f14ddbe9266b61f5e721095c3685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f1619be2457a0a9e359ff4fefe1dbf6"><td class="memItemLeft" align="right" valign="top"><a id="a8f1619be2457a0a9e359ff4fefe1dbf6" name="a8f1619be2457a0a9e359ff4fefe1dbf6"></a>
virtual <a class="el" href="class_a2_d_p_volume_control.html">A2DPVolumeControl</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>volume_control</b> ()</td></tr>
<tr class="memdesc:a8f1619be2457a0a9e359ff4fefe1dbf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">provides access to the VolumeControl object <br /></td></tr>
<tr class="separator:a8f1619be2457a0a9e359ff4fefe1dbf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af4c5e0b479266237b9737c4e848e59f8"><td class="memItemLeft" align="right" valign="top"><a id="af4c5e0b479266237b9737c4e848e59f8" name="af4c5e0b479266237b9737c4e848e59f8"></a>
music_data_channels_cb_t&#160;</td><td class="memItemRight" valign="bottom"><b>data_stream_channels_callback</b></td></tr>
<tr class="separator:af4c5e0b479266237b9737c4e848e59f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b050c002df7459c95a3d1dc325c5c20"><td class="memItemLeft" align="right" valign="top"><a id="a5b050c002df7459c95a3d1dc325c5c20" name="a5b050c002df7459c95a3d1dc325c5c20"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>dev_name</b> = &quot;ESP32_A2DP_SRC&quot;</td></tr>
<tr class="separator:a5b050c002df7459c95a3d1dc325c5c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63d502a55a545054c10bae478c01f66c"><td class="memItemLeft" align="right" valign="top"><a id="a63d502a55a545054c10bae478c01f66c" name="a63d502a55a545054c10bae478c01f66c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>ssp_enabled</b> =false</td></tr>
<tr class="separator:a63d502a55a545054c10bae478c01f66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e23d7e31a65cb560050bb2a4a0bb08c"><td class="memItemLeft" align="right" valign="top"><a id="a2e23d7e31a65cb560050bb2a4a0bb08c" name="a2e23d7e31a65cb560050bb2a4a0bb08c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_connecting</b> = false</td></tr>
<tr class="separator:a2e23d7e31a65cb560050bb2a4a0bb08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e6134502e7b189074516cac8ad84000"><td class="memItemLeft" align="right" valign="top"><a id="a5e6134502e7b189074516cac8ad84000" name="a5e6134502e7b189074516cac8ad84000"></a>
std::vector&lt; const char * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>bt_names</b></td></tr>
<tr class="separator:a5e6134502e7b189074516cac8ad84000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8be5c6322c55159a608c559ccadefaca"><td class="memItemLeft" align="right" valign="top"><a id="a8be5c6322c55159a608c559ccadefaca" name="a8be5c6322c55159a608c559ccadefaca"></a>
esp_bt_pin_type_t&#160;</td><td class="memItemRight" valign="bottom"><b>pin_type</b></td></tr>
<tr class="separator:a8be5c6322c55159a608c559ccadefaca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4fabc0ba19e85aeae783aedf9adb9da"><td class="memItemLeft" align="right" valign="top"><a id="ad4fabc0ba19e85aeae783aedf9adb9da" name="ad4fabc0ba19e85aeae783aedf9adb9da"></a>
esp_bt_pin_code_t&#160;</td><td class="memItemRight" valign="bottom"><b>pin_code</b></td></tr>
<tr class="separator:ad4fabc0ba19e85aeae783aedf9adb9da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8a1ebe90cfa00f7ae464eeb054af499"><td class="memItemLeft" align="right" valign="top"><a id="af8a1ebe90cfa00f7ae464eeb054af499" name="af8a1ebe90cfa00f7ae464eeb054af499"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>pin_code_len</b></td></tr>
<tr class="separator:af8a1ebe90cfa00f7ae464eeb054af499"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a633e599632e5bcd466b37294ed4bf8b3"><td class="memItemLeft" align="right" valign="top"><a id="a633e599632e5bcd466b37294ed4bf8b3" name="a633e599632e5bcd466b37294ed4bf8b3"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>s_peer_bdname</b> [ESP_BT_GAP_MAX_BDNAME_LEN+1]</td></tr>
<tr class="separator:a633e599632e5bcd466b37294ed4bf8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2020e86e6bbce20debee2bb2e4cf2ced"><td class="memItemLeft" align="right" valign="top"><a id="a2020e86e6bbce20debee2bb2e4cf2ced" name="a2020e86e6bbce20debee2bb2e4cf2ced"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>s_a2d_state</b> =0</td></tr>
<tr class="separator:a2020e86e6bbce20debee2bb2e4cf2ced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ee4922232755bcb43038fab3748dbcb"><td class="memItemLeft" align="right" valign="top"><a id="a9ee4922232755bcb43038fab3748dbcb" name="a9ee4922232755bcb43038fab3748dbcb"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>s_media_state</b> =0</td></tr>
<tr class="separator:a9ee4922232755bcb43038fab3748dbcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71fda71754508b0857edbd00ee6ee3d"><td class="memItemLeft" align="right" valign="top"><a id="aa71fda71754508b0857edbd00ee6ee3d" name="aa71fda71754508b0857edbd00ee6ee3d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>s_intv_cnt</b> =0</td></tr>
<tr class="separator:aa71fda71754508b0857edbd00ee6ee3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfe3887361e647d12139780ed2deac86"><td class="memItemLeft" align="right" valign="top"><a id="abfe3887361e647d12139780ed2deac86" name="abfe3887361e647d12139780ed2deac86"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>s_connecting_heatbeat_count</b></td></tr>
<tr class="separator:abfe3887361e647d12139780ed2deac86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa89018df587edc2a98338fafb749383e"><td class="memItemLeft" align="right" valign="top"><a id="aa89018df587edc2a98338fafb749383e" name="aa89018df587edc2a98338fafb749383e"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>s_pkt_cnt</b></td></tr>
<tr class="separator:aa89018df587edc2a98338fafb749383e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2675e1945024bcfc5d124cd34f4d8578"><td class="memItemLeft" align="right" valign="top"><a id="a2675e1945024bcfc5d124cd34f4d8578" name="a2675e1945024bcfc5d124cd34f4d8578"></a>
TimerHandle_t&#160;</td><td class="memItemRight" valign="bottom"><b>s_tmr</b></td></tr>
<tr class="separator:a2675e1945024bcfc5d124cd34f4d8578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5359902d284fdfc6307d9cd4d2bd3193"><td class="memItemLeft" align="right" valign="top"><a id="a5359902d284fdfc6307d9cd4d2bd3193" name="a5359902d284fdfc6307d9cd4d2bd3193"></a>
xQueueHandle&#160;</td><td class="memItemRight" valign="bottom"><b>s_bt_app_task_queue</b> = nullptr</td></tr>
<tr class="separator:a5359902d284fdfc6307d9cd4d2bd3193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af65d6167cd879c39a73b5a62e39c1524"><td class="memItemLeft" align="right" valign="top"><a id="af65d6167cd879c39a73b5a62e39c1524" name="af65d6167cd879c39a73b5a62e39c1524"></a>
xTaskHandle&#160;</td><td class="memItemRight" valign="bottom"><b>s_bt_app_task_handle</b> = nullptr</td></tr>
<tr class="separator:af65d6167cd879c39a73b5a62e39c1524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a82a24b6f0b9af6bd5ca880b4e30906"><td class="memItemLeft" align="right" valign="top"><a id="a5a82a24b6f0b9af6bd5ca880b4e30906" name="a5a82a24b6f0b9af6bd5ca880b4e30906"></a>
<a class="el" href="class_sound_data.html">SoundData</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>sound_data</b> = nullptr</td></tr>
<tr class="separator:a5a82a24b6f0b9af6bd5ca880b4e30906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a74b3dc3c33528bc628bda84ea8ed7a"><td class="memItemLeft" align="right" valign="top"><a id="a6a74b3dc3c33528bc628bda84ea8ed7a" name="a6a74b3dc3c33528bc628bda84ea8ed7a"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>sound_data_current_pos</b> = 0</td></tr>
<tr class="separator:a6a74b3dc3c33528bc628bda84ea8ed7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c0a62cf8ed64c1a13a941fa27aff686"><td class="memItemLeft" align="right" valign="top"><a id="a2c0a62cf8ed64c1a13a941fa27aff686" name="a2c0a62cf8ed64c1a13a941fa27aff686"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>has_sound_data_flag</b> = false</td></tr>
<tr class="separator:a2c0a62cf8ed64c1a13a941fa27aff686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af34d6e4890bf2b59d25b043c9a8b41ae"><td class="memItemLeft" align="right" valign="top"><a id="af34d6e4890bf2b59d25b043c9a8b41ae" name="af34d6e4890bf2b59d25b043c9a8b41ae"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>nvs_init</b> = true</td></tr>
<tr class="separator:af34d6e4890bf2b59d25b043c9a8b41ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeca78610802e0628899e6d7e773095f"><td class="memItemLeft" align="right" valign="top"><a id="aeeca78610802e0628899e6d7e773095f" name="aeeca78610802e0628899e6d7e773095f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>reset_ble</b> = true</td></tr>
<tr class="separator:aeeca78610802e0628899e6d7e773095f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac90f56d2694ebe1b23ab229699c9d456"><td class="memItemLeft" align="right" valign="top"><a id="ac90f56d2694ebe1b23ab229699c9d456" name="ac90f56d2694ebe1b23ab229699c9d456"></a>
music_data_cb_t&#160;</td><td class="memItemRight" valign="bottom"><b>data_stream_callback</b></td></tr>
<tr class="separator:ac90f56d2694ebe1b23ab229699c9d456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8d936972af8aae81f06c17af6e22113"><td class="memItemLeft" align="right" valign="top"><a id="ae8d936972af8aae81f06c17af6e22113" name="ae8d936972af8aae81f06c17af6e22113"></a>
bool(*&#160;</td><td class="memItemRight" valign="bottom"><b>ssid_callback</b> )(const char *ssid, esp_bd_addr_t address, int rrsi) = nullptr</td></tr>
<tr class="separator:ae8d936972af8aae81f06c17af6e22113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879f4819b7e2a26c7245726a453fcc61"><td class="memItemLeft" align="right" valign="top"><a id="a879f4819b7e2a26c7245726a453fcc61" name="a879f4819b7e2a26c7245726a453fcc61"></a>
esp_avrc_rn_evt_cap_mask_t&#160;</td><td class="memItemRight" valign="bottom"><b>s_avrc_peer_rn_cap</b></td></tr>
<tr class="separator:a879f4819b7e2a26c7245726a453fcc61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e53210a1eeea015457cfc94df7883e1"><td class="memItemLeft" align="right" valign="top"><a id="a6e53210a1eeea015457cfc94df7883e1" name="a6e53210a1eeea015457cfc94df7883e1"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>bt_name</b> = {0}</td></tr>
<tr class="separator:a6e53210a1eeea015457cfc94df7883e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83cff3bdeb407a6c19618ba208438604"><td class="memItemLeft" align="right" valign="top"><a id="a83cff3bdeb407a6c19618ba208438604" name="a83cff3bdeb407a6c19618ba208438604"></a>
esp_bd_addr_t&#160;</td><td class="memItemRight" valign="bottom"><b>peer_bd_addr</b></td></tr>
<tr class="separator:a83cff3bdeb407a6c19618ba208438604"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0c2fae7d742947d47bae41a690a712"><td class="memItemLeft" align="right" valign="top"><a id="a0e0c2fae7d742947d47bae41a690a712" name="a0e0c2fae7d742947d47bae41a690a712"></a>
ReconnectStatus&#160;</td><td class="memItemRight" valign="bottom"><b>reconnect_status</b> = AutoReconnect</td></tr>
<tr class="separator:a0e0c2fae7d742947d47bae41a690a712"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa350c922076ae8584f26d1693edc0ba8"><td class="memItemLeft" align="right" valign="top"><a id="aa350c922076ae8584f26d1693edc0ba8" name="aa350c922076ae8584f26d1693edc0ba8"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>reconnect_timout</b> =0</td></tr>
<tr class="separator:aa350c922076ae8584f26d1693edc0ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa84a9c336d81ce5f8a64ce9f3b03fdc6"><td class="memItemLeft" align="right" valign="top"><a id="aa84a9c336d81ce5f8a64ce9f3b03fdc6" name="aa84a9c336d81ce5f8a64ce9f3b03fdc6"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>default_reconnect_timout</b> =10000</td></tr>
<tr class="separator:aa84a9c336d81ce5f8a64ce9f3b03fdc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad383ee1fca4929326b02b671aa03ee44"><td class="memItemLeft" align="right" valign="top"><a id="ad383ee1fca4929326b02b671aa03ee44" name="ad383ee1fca4929326b02b671aa03ee44"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_autoreconnect_allowed</b> = false</td></tr>
<tr class="separator:ad383ee1fca4929326b02b671aa03ee44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad04d173227dbd77d1956747cc10837c4"><td class="memItemLeft" align="right" valign="top"><a id="ad04d173227dbd77d1956747cc10837c4" name="ad04d173227dbd77d1956747cc10837c4"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>debounce_ms</b> = 0</td></tr>
<tr class="separator:ad04d173227dbd77d1956747cc10837c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7d15ed8662f01083e09b8966ced8234"><td class="memItemLeft" align="right" valign="top"><a id="af7d15ed8662f01083e09b8966ced8234" name="af7d15ed8662f01083e09b8966ced8234"></a>
<a class="el" href="class_a2_d_p_default_volume_control.html">A2DPDefaultVolumeControl</a>&#160;</td><td class="memItemRight" valign="bottom"><b>default_volume_control</b></td></tr>
<tr class="separator:af7d15ed8662f01083e09b8966ced8234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cb800c8abaaffe89b343b03f5fc77ef"><td class="memItemLeft" align="right" valign="top"><a id="a1cb800c8abaaffe89b343b03f5fc77ef" name="a1cb800c8abaaffe89b343b03f5fc77ef"></a>
<a class="el" href="class_a2_d_p_volume_control.html">A2DPVolumeControl</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>volume_control_ptr</b> = nullptr</td></tr>
<tr class="separator:a1cb800c8abaaffe89b343b03f5fc77ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add25164fa6c099827e04db70d7ab0f62"><td class="memItemLeft" align="right" valign="top"><a id="add25164fa6c099827e04db70d7ab0f62" name="add25164fa6c099827e04db70d7ab0f62"></a>
esp_bd_addr_t&#160;</td><td class="memItemRight" valign="bottom"><b>last_connection</b> = {0,0,0,0,0,0}</td></tr>
<tr class="separator:add25164fa6c099827e04db70d7ab0f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44c96686a0e2d7da22805a1c9fb7ab85"><td class="memItemLeft" align="right" valign="top"><a id="a44c96686a0e2d7da22805a1c9fb7ab85" name="a44c96686a0e2d7da22805a1c9fb7ab85"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_start_disabled</b> = false</td></tr>
<tr class="separator:a44c96686a0e2d7da22805a1c9fb7ab85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac3515fd23a006c95a754c7ad9ee28"><td class="memItemLeft" align="right" valign="top"><a id="aefac3515fd23a006c95a754c7ad9ee28" name="aefac3515fd23a006c95a754c7ad9ee28"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>connection_state_callback</b> )(esp_a2d_connection_state_t state, void *obj) = nullptr</td></tr>
<tr class="separator:aefac3515fd23a006c95a754c7ad9ee28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa227651f633af4d364515a7691d68782"><td class="memItemLeft" align="right" valign="top"><a id="aa227651f633af4d364515a7691d68782" name="aa227651f633af4d364515a7691d68782"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>audio_state_callback</b> )(esp_a2d_audio_state_t state, void *obj) = nullptr</td></tr>
<tr class="separator:aa227651f633af4d364515a7691d68782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a586a5e9db2ad916cdcb32a2ab91d9776"><td class="memItemLeft" align="right" valign="top"><a id="a586a5e9db2ad916cdcb32a2ab91d9776" name="a586a5e9db2ad916cdcb32a2ab91d9776"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>audio_state_callback_post</b> )(esp_a2d_audio_state_t state, void *obj) = nullptr</td></tr>
<tr class="separator:a586a5e9db2ad916cdcb32a2ab91d9776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76c7cf9a20791dbfa9ee0117e3d42b95"><td class="memItemLeft" align="right" valign="top"><a id="a76c7cf9a20791dbfa9ee0117e3d42b95" name="a76c7cf9a20791dbfa9ee0117e3d42b95"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>connection_state_obj</b> = nullptr</td></tr>
<tr class="separator:a76c7cf9a20791dbfa9ee0117e3d42b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a430ec514ce2596d8d1f644defa2090b0"><td class="memItemLeft" align="right" valign="top"><a id="a430ec514ce2596d8d1f644defa2090b0" name="a430ec514ce2596d8d1f644defa2090b0"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>audio_state_obj</b> = nullptr</td></tr>
<tr class="separator:a430ec514ce2596d8d1f644defa2090b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d6ebc612bc39d8c0d774b05b5fb5435"><td class="memItemLeft" align="right" valign="top"><a id="a7d6ebc612bc39d8c0d774b05b5fb5435" name="a7d6ebc612bc39d8c0d774b05b5fb5435"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>audio_state_obj_post</b> = nullptr</td></tr>
<tr class="separator:a7d6ebc612bc39d8c0d774b05b5fb5435"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8614127c04ef9b9ef6d0c9fa2f33d1ed"><td class="memItemLeft" align="right" valign="top"><a id="a8614127c04ef9b9ef6d0c9fa2f33d1ed" name="a8614127c04ef9b9ef6d0c9fa2f33d1ed"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>m_a2d_conn_state_str</b> [4] = {&quot;Disconnected&quot;, &quot;Connecting&quot;, &quot;Connected&quot;, &quot;Disconnecting&quot;}</td></tr>
<tr class="separator:a8614127c04ef9b9ef6d0c9fa2f33d1ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbe69860108ab18edee3cd24fa64be53"><td class="memItemLeft" align="right" valign="top"><a id="abbe69860108ab18edee3cd24fa64be53" name="abbe69860108ab18edee3cd24fa64be53"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>m_a2d_audio_state_str</b> [3] = {&quot;Suspended&quot;, &quot;Stopped&quot;, &quot;Started&quot;}</td></tr>
<tr class="separator:abbe69860108ab18edee3cd24fa64be53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44aeeb4214776fea1bca6ecf2e8e8dc2"><td class="memItemLeft" align="right" valign="top"><a id="a44aeeb4214776fea1bca6ecf2e8e8dc2" name="a44aeeb4214776fea1bca6ecf2e8e8dc2"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>m_avrc_playback_state_str</b> [5] = {&quot;stopped&quot;, &quot;playing&quot;, &quot;paused&quot;, &quot;forward seek&quot;, &quot;reverse seek&quot;}</td></tr>
<tr class="separator:a44aeeb4214776fea1bca6ecf2e8e8dc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d557628ca4cdb883fa005df2f494f32"><td class="memItemLeft" align="right" valign="top"><a id="a1d557628ca4cdb883fa005df2f494f32" name="a1d557628ca4cdb883fa005df2f494f32"></a>
esp_a2d_audio_state_t&#160;</td><td class="memItemRight" valign="bottom"><b>audio_state</b> = ESP_A2D_AUDIO_STATE_STOPPED</td></tr>
<tr class="separator:a1d557628ca4cdb883fa005df2f494f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac11aaa770b2754858223a4bcdae83b5b"><td class="memItemLeft" align="right" valign="top"><a id="ac11aaa770b2754858223a4bcdae83b5b" name="ac11aaa770b2754858223a4bcdae83b5b"></a>
esp_a2d_connection_state_t&#160;</td><td class="memItemRight" valign="bottom"><b>connection_state</b> = ESP_A2D_CONNECTION_STATE_DISCONNECTED</td></tr>
<tr class="separator:ac11aaa770b2754858223a4bcdae83b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e218a2956baea1be621e8c31d2875c8"><td class="memItemLeft" align="right" valign="top"><a id="a2e218a2956baea1be621e8c31d2875c8" name="a2e218a2956baea1be621e8c31d2875c8"></a>
UBaseType_t&#160;</td><td class="memItemRight" valign="bottom"><b>task_priority</b> = configMAX_PRIORITIES - 10</td></tr>
<tr class="separator:a2e218a2956baea1be621e8c31d2875c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf02ccde9ba626cea64870a255672dba"><td class="memItemLeft" align="right" valign="top"><a id="aaf02ccde9ba626cea64870a255672dba" name="aaf02ccde9ba626cea64870a255672dba"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>volume_value</b> = 0</td></tr>
<tr class="separator:aaf02ccde9ba626cea64870a255672dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3f1abcd092657807bd4a4cab205ba88"><td class="memItemLeft" align="right" valign="top"><a id="aa3f1abcd092657807bd4a4cab205ba88" name="aa3f1abcd092657807bd4a4cab205ba88"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_volume_used</b> = false</td></tr>
<tr class="separator:aa3f1abcd092657807bd4a4cab205ba88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b0acd3b6c295785607d326128eaa52e"><td class="memItemLeft" align="right" valign="top"><a id="a5b0acd3b6c295785607d326128eaa52e" name="a5b0acd3b6c295785607d326128eaa52e"></a>
BaseType_t&#160;</td><td class="memItemRight" valign="bottom"><b>task_core</b> = 1</td></tr>
<tr class="separator:a5b0acd3b6c295785607d326128eaa52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6737dd3e78e2f979815615b143fcfda"><td class="memItemLeft" align="right" valign="top"><a id="ae6737dd3e78e2f979815615b143fcfda" name="ae6737dd3e78e2f979815615b143fcfda"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>event_queue_size</b> = 20</td></tr>
<tr class="separator:ae6737dd3e78e2f979815615b143fcfda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdc17e14de376b611b41974052b4dd2c"><td class="memItemLeft" align="right" valign="top"><a id="abdc17e14de376b611b41974052b4dd2c" name="abdc17e14de376b611b41974052b4dd2c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>event_stack_size</b> = 3072</td></tr>
<tr class="separator:abdc17e14de376b611b41974052b4dd2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca23dacb41661dd91b202c0f7939f69"><td class="memItemLeft" align="right" valign="top"><a id="a2ca23dacb41661dd91b202c0f7939f69" name="a2ca23dacb41661dd91b202c0f7939f69"></a>
esp_bt_discovery_mode_t&#160;</td><td class="memItemRight" valign="bottom"><b>discoverability</b> = ESP_BT_GENERAL_DISCOVERABLE</td></tr>
<tr class="separator:a2ca23dacb41661dd91b202c0f7939f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a2149d074cacdc8bd8ff8efe3c2eb63bf"><td class="memItemLeft" align="right" valign="top"><a id="a2149d074cacdc8bd8ff8efe3c2eb63bf" name="a2149d074cacdc8bd8ff8efe3c2eb63bf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_av_hdl_stack_evt</b> (uint16_t event, void *p_param)</td></tr>
<tr class="separator:a2149d074cacdc8bd8ff8efe3c2eb63bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c7e4fb41d19a7d79bce115bd1502649"><td class="memItemLeft" align="right" valign="top"><a id="a6c7e4fb41d19a7d79bce115bd1502649" name="a6c7e4fb41d19a7d79bce115bd1502649"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_app_task_handler</b> (void *arg)</td></tr>
<tr class="separator:a6c7e4fb41d19a7d79bce115bd1502649"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a506b65328e9c49596c47a5ca7333437c"><td class="memItemLeft" align="right" valign="top"><a id="a506b65328e9c49596c47a5ca7333437c" name="a506b65328e9c49596c47a5ca7333437c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_app_gap_callback</b> (esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param)</td></tr>
<tr class="separator:a506b65328e9c49596c47a5ca7333437c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7a6e5a14c578cbcd036247d89c99c46"><td class="memItemLeft" align="right" valign="top"><a id="ae7a6e5a14c578cbcd036247d89c99c46" name="ae7a6e5a14c578cbcd036247d89c99c46"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_app_rc_ct_cb</b> (esp_avrc_ct_cb_event_t event, esp_avrc_ct_cb_param_t *param)</td></tr>
<tr class="separator:ae7a6e5a14c578cbcd036247d89c99c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeffd9b0354b9fb52ad2de310d08102ea"><td class="memItemLeft" align="right" valign="top"><a id="aeffd9b0354b9fb52ad2de310d08102ea" name="aeffd9b0354b9fb52ad2de310d08102ea"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_a2d_app_heart_beat</b> (void *arg)</td></tr>
<tr class="separator:aeffd9b0354b9fb52ad2de310d08102ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc91c718a51ef4d63c71314602357d9e"><td class="memItemLeft" align="right" valign="top"><a id="abc91c718a51ef4d63c71314602357d9e" name="abc91c718a51ef4d63c71314602357d9e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_app_a2d_cb</b> (esp_a2d_cb_event_t event, esp_a2d_cb_param_t *param)</td></tr>
<tr class="separator:abc91c718a51ef4d63c71314602357d9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a053dbacc4e564c74d61d7be3be03f851"><td class="memItemLeft" align="right" valign="top"><a id="a053dbacc4e564c74d61d7be3be03f851" name="a053dbacc4e564c74d61d7be3be03f851"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_app_av_sm_hdlr</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a053dbacc4e564c74d61d7be3be03f851"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93123a41154cd9cc64753f5430b9f045"><td class="memItemLeft" align="right" valign="top"><a id="a93123a41154cd9cc64753f5430b9f045" name="a93123a41154cd9cc64753f5430b9f045"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_av_hdl_avrc_ct_evt</b> (uint16_t event, void *param)</td></tr>
<tr class="separator:a93123a41154cd9cc64753f5430b9f045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add9a125e7249e32cb43a64c92643dd9a"><td class="memItemLeft" align="right" valign="top"><a id="add9a125e7249e32cb43a64c92643dd9a" name="add9a125e7249e32cb43a64c92643dd9a"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_bt_app_a2d_data_cb</b> (uint8_t *data, int32_t len)</td></tr>
<tr class="separator:add9a125e7249e32cb43a64c92643dd9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80ee0f8456c6d7a936f281b4e237441a"><td class="memItemLeft" align="right" valign="top"><a id="a80ee0f8456c6d7a936f281b4e237441a" name="a80ee0f8456c6d7a936f281b4e237441a"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_get_channel_data_wrapper</b> (uint8_t *data, int32_t len)</td></tr>
<tr class="separator:a80ee0f8456c6d7a936f281b4e237441a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a734e4a302a515cbeca3253f1a804722c"><td class="memItemLeft" align="right" valign="top"><a id="a734e4a302a515cbeca3253f1a804722c" name="a734e4a302a515cbeca3253f1a804722c"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>ccall_get_data_default</b> (uint8_t *data, int32_t len)</td></tr>
<tr class="separator:a734e4a302a515cbeca3253f1a804722c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A2DP Bluetooth Source. </p>
<dl class="section author"><dt>Author</dt><dd>Phil Schatzmann </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>Apache License Version 2 </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a71d1b1f7d91b04383d0c578a80544fbb" name="a71d1b1f7d91b04383d0c578a80544fbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71d1b1f7d91b04383d0c578a80544fbb">&#9670;&#160;</a></span>bt_av_hdl_stack_evt()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPSource::bt_av_hdl_stack_evt </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The following mthods are called by the framework. They are public so that they can be executed from a extern "C" function. </p>

</div>
</div>
<a id="a76e329bf0587ebf41792871acc69188b" name="a76e329bf0587ebf41792871acc69188b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76e329bf0587ebf41792871acc69188b">&#9670;&#160;</a></span>end()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPCommon::end </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>releaseMemory</em> = <code>false</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Closes the connection and stops A2DP. </p>

<p>Reimplemented in <a class="el" href="class_bluetooth_a2_d_p_sink.html#a5a91e49987a2e39c09fc6c2a64feaed6">BluetoothA2DPSink</a>.</p>

</div>
</div>
<a id="a2626298e32edfc399ddb0bf5efc32fc7" name="a2626298e32edfc399ddb0bf5efc32fc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2626298e32edfc399ddb0bf5efc32fc7">&#9670;&#160;</a></span>esp_a2d_connect()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual esp_err_t BluetoothA2DPSource::esp_a2d_connect </td>
          <td>(</td>
          <td class="paramtype">esp_bd_addr_t&#160;</td>
          <td class="paramname"><em>peer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="class_bluetooth_a2_d_p_common.html">BluetoothA2DPCommon</a>.</p>

</div>
</div>
<a id="a0e570c2c2f9db40873286e0571f0d93a" name="a0e570c2c2f9db40873286e0571f0d93a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e570c2c2f9db40873286e0571f0d93a">&#9670;&#160;</a></span>get_volume()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int BluetoothA2DPCommon::get_volume </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines the actual volume. </p>

<p>Reimplemented in <a class="el" href="class_bluetooth_a2_d_p_sink.html#aca1119f20d2321fb950ae859000cce7b">BluetoothA2DPSink</a>.</p>

</div>
</div>
<a id="a5cdf418188e9d1d003c6524f2e1e640c" name="a5cdf418188e9d1d003c6524f2e1e640c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5cdf418188e9d1d003c6524f2e1e640c">&#9670;&#160;</a></span>is_connected()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool BluetoothA2DPSource::is_connected </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns true if the bluetooth device is connected. </p>

<p>Implements <a class="el" href="class_bluetooth_a2_d_p_common.html#a168bc344644da48b595e284b7800e3f2">BluetoothA2DPCommon</a>.</p>

</div>
</div>
<a id="a8b692c9a823d9631db112bf59b3fe17e" name="a8b692c9a823d9631db112bf59b3fe17e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b692c9a823d9631db112bf59b3fe17e">&#9670;&#160;</a></span>last_bda_nvs_name()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char * BluetoothA2DPSource::last_bda_nvs_name </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="class_bluetooth_a2_d_p_common.html">BluetoothA2DPCommon</a>.</p>

</div>
</div>
<a id="a8e53adc58f665113c9ac6a5521e58814" name="a8e53adc58f665113c9ac6a5521e58814"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e53adc58f665113c9ac6a5521e58814">&#9670;&#160;</a></span>set_discoverability()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPCommon::set_discoverability </td>
          <td>(</td>
          <td class="paramtype">esp_bt_discovery_mode_t&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Bluetooth discoverability. </p>
<p>Defines if the bluetooth is discoverable. </p>

</div>
</div>
<a id="a5f13ecf541393c21a5a489235bad27fb" name="a5f13ecf541393c21a5a489235bad27fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f13ecf541393c21a5a489235bad27fb">&#9670;&#160;</a></span>set_on_audio_state_changed()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPCommon::set_on_audio_state_changed </td>
          <td>(</td>
          <td class="paramtype">void(*)(esp_a2d_audio_state_t state, void *)&#160;</td>
          <td class="paramname"><em>callBack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>obj</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the callback that is called when the audio state is changed. </p>
<p>Set the callback that is called when the audio state is changed This callback is called before the I2S bus is changed. </p>

</div>
</div>
<a id="a169e9b94cbbfb7311a8722cc6d436e95" name="a169e9b94cbbfb7311a8722cc6d436e95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a169e9b94cbbfb7311a8722cc6d436e95">&#9670;&#160;</a></span>set_on_audio_state_changed_post()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPCommon::set_on_audio_state_changed_post </td>
          <td>(</td>
          <td class="paramtype">void(*)(esp_a2d_audio_state_t state, void *)&#160;</td>
          <td class="paramname"><em>callBack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>obj</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set the callback that is called after the audio state has changed. This callback is called after the I2S bus has changed. </p>

</div>
</div>
<a id="aa79cff78c075c9273ea2b5c03f052fcd" name="aa79cff78c075c9273ea2b5c03f052fcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa79cff78c075c9273ea2b5c03f052fcd">&#9670;&#160;</a></span>set_on_connection_state_changed()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPCommon::set_on_connection_state_changed </td>
          <td>(</td>
          <td class="paramtype">void(*)(esp_a2d_connection_state_t state, void *)&#160;</td>
          <td class="paramname"><em>callBack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>obj</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the callback that is called when the connection state is changed. </p>
<p>Set the callback that is called when the connection state is changed This callback is called before the I2S bus is changed. </p>

</div>
</div>
<a id="a0bab92d9317837ecaeacbfe26814e28c" name="a0bab92d9317837ecaeacbfe26814e28c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0bab92d9317837ecaeacbfe26814e28c">&#9670;&#160;</a></span>set_volume()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void BluetoothA2DPCommon::set_volume </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>volume</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the volume (range 0 - 255) </p>

<p>Reimplemented in <a class="el" href="class_bluetooth_a2_d_p_sink.html#a507e30ececfdc4382af60a0319cdaf1b">BluetoothA2DPSink</a>.</p>

</div>
</div>
<a id="a403b0e21db02c81b948534258e5ff37b" name="a403b0e21db02c81b948534258e5ff37b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a403b0e21db02c81b948534258e5ff37b">&#9670;&#160;</a></span>start()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPSource::start </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">music_data_channels_cb_t&#160;</td>
          <td class="paramname"><em>callback</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>starts the bluetooth source </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>Bluetooth name of the device to connect to </td></tr>
    <tr><td class="paramname">callback</td><td>function that provides the audio stream as array of Frame </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aed760968d1114bf993325302deef0fb1" name="aed760968d1114bf993325302deef0fb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed760968d1114bf993325302deef0fb1">&#9670;&#160;</a></span>start_raw()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void BluetoothA2DPSource::start_raw </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">music_data_cb_t&#160;</td>
          <td class="paramname"><em>callback</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>starts the bluetooth source </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>Bluetooth name of the device to connect to </td></tr>
    <tr><td class="paramname">callback</td><td>function that provides the audio stream - The supported audio codec in ESP32 A2DP is SBC. SBC audio stream is encoded from PCM data normally formatted as 44.1kHz sampling rate, two-channel 16-bit sample data </td></tr>
    <tr><td class="paramname">is_ssp_enabled</td><td>Flag to activate Secure Simple Pairing </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7896335b8f2cc324da86e16efb1544c9" name="a7896335b8f2cc324da86e16efb1544c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7896335b8f2cc324da86e16efb1544c9">&#9670;&#160;</a></span>to_str()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char * BluetoothA2DPCommon::to_str </td>
          <td>(</td>
          <td class="paramtype">esp_avrc_playback_stat_t&#160;</td>
          <td class="paramname"><em>state</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>converts esp_avrc_playback_stat_t to a string </p>
<p>converts a esp_a2d_audio_state_t to a string </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="_bluetooth_a2_d_p_source_8h_source.html">BluetoothA2DPSource.h</a></li>
<li>src/BluetoothA2DPSource.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
</small></address>
</body>
</html>
